
// leetcode 46. 全排列
//class Solution {
//
//    List<List<Integer>> ret = new ArrayList<>();
//    List<Integer> path = new ArrayList<>();
//    Set<Integer> set = new HashSet<>();
//
//    public List<List<Integer>> permute(int[] nums) {
//        dfs(nums, 0);
//        return ret;
//    }
//
//    public void dfs(int[] nums, int index) {
//        if (index >= nums.length) {
//            ret.add(new ArrayList<>(path));
//            return;
//        }
//        for (int i = 0; i < nums.length; i++) {
//            if (!set.isEmpty() && set.contains(nums[i])) continue;
//            path.add(nums[i]);
//            set.add(nums[i]);
//            dfs(nums, index + 1);
//            path.remove(path.size() - 1);
//            set.remove(nums[i]);
//        }
//    }
//}